1. Field of the Invention
The present invention relates to a hierarchical storage system having a hierarchical storage configuration with a primary storage, such as a disk apparatus, and a secondary storage, such as a magnetic tape apparatus, and a control method and a program for such a hierarchical storage system. In particular, the present invention relates to a hierarchical storage system in which the primary storage is used as a cache apparatus of the secondary storage and links for use to allow an autonomous data rearranging operation between the primary storage and the secondary storage are sorted in time-stamp order for reconfiguration, and a control method and a program for such a hierarchical storage system.
2. Description of the Related Arts
Conventionally, as a storage system having a large capacity of a petabyte size, a hierarchical storage system is constructed with a data hierarchical configuration using a high-speed storage device, such as a magnetic disk apparatus, as a primary storage and a low-speed storage device, such as a magnetic tape apparatus, as a secondary storage. In such a large-capacity hierarchical storage system, with the primary storage being handled as a cache apparatus of the secondary storage, data with a high frequency of access is disposed in the primary storage, which is closer to a host, whilst data with a low frequency of access is disposed in the secondary storage, which is away from the host, thereby increasing access performance. In an input/output process of a hierarchical storage using the primary storage as a cache apparatus of the secondary storage, a block information table is created and managed for each data block, which is a data input/output unit in the primary storage and the secondary storage. This block information table is generated on a memory when a higher-level apparatus writes block data in the primary storage, and has stored therein a time stamp indicative of a write time, a status in hierarchical storage, and others. Also, a link table is created on the memory simultaneously with the block information tables to construct a link in which the block information tables are connected by pointers in time-stamp order. Examples of a link in which the block information tables are connected by pointers in time-stamp order are a dirty link, a hit link, and LRU link. In the hit link, block information tables of data blocks that are present in both of the primary storage and the secondary storage and are in synchronization with each other are connected in time-stamp order. In the dirty link, block information tables of data blocks that are present in the primary storage but not present in the secondary storage or those that are present in both storages but are not in synchronization with each other are connected in time-stamp order. Furthermore, in the LRU link, block information tables of all data blocks that are present in the primary storage are connected in time-stamp order. Furthermore, the block information tables on the memory is backed up by being written in a system area of the primary storage in each predetermined timing.
[First Patent Document] Japanese Patent Laid-Open Publication No. 9-297699
[Second Patent Document] Japanese Patent Laid-Open Publication No. 60-179857
[First Patent Document] Japanese Patent Laid-Open Publication No. 02-123438
However, in such a conventional hierarchical storage system, the block information tables and link table managed on the memory are required to be stored in a system volume of the primary storage and be backed up even if they are lost due to a power shutdown. There is a problem, however, where due to restrictions on a backup area in the primary volume, only the block information tables are backed up and the link table is not backed up. This is because the number of data blocks that can be stored in the primary storage functioning as a cache apparatus of the secondary storage will be as many as approximately one hundred and fifty thousands when, for example, it is assumed that the capacity of the primary storage is 32 terabytes (TB) and a block size is 256 megabytes (MB), and the corresponding number of block information tables are generated on the memory. Therefore, in the system volume of the primary storage, an area for storing block information tables of one hundred and fifty thousand blocks has to be allocated for backup. In addition, if a link table storage area having stored therein pointers of the dirty link and the hit link connecting block management tables (block information tables) of one hundred and 150,000 blocks is allocated in the system volume, an allocated area of the system volume in the primary storage is increased to restrict a user area. Furthermore, in order to reduce an entire backup time at a power shutdown, a backup of storing the link table in the secondary storage is not performed. Moreover, in a scheme of backing up the link table at a power shutdown and reconfiguring the link at power-on again, part of a plurality of memories is degraded at power-on and, upon separation, the link is broken due to a link's characteristic that “the block information tables are contextually connected by pointers”. Also for this reason, the link table is not backed up to the secondary storage. Thus, when the power is shut down and then turned on again during the operation of the hierarchical storage system, the link table constructing the dirty link, the hit link, and the LRU link on the memory is lost due to a power shutdown. To address this problem, it is required during an initialization process after the power is turned on again that the block information tables stored in the primary storage be restored in the memory, the block information tables be classified by status into hit and dirty, and a hit link, a dirty link, and an LRU link each connected in time-stamp order are reconfigured. However, to reconfigure these links, first an initial link is configured by searching block management tables (block information tables) restored on the memory in address order and then connecting these tables by pointers. However, the connection of this initial link is not in time-stamp order. Thus, for the initial link, a sort process of examining time stamps of the block information tables from the head of the link and then rearranging in the order in which the earliest time stamp comes first is required. However, the reconfigured table link has a link length of, for example, one hundred and 150,000 at the longest corresponding to the block size of the primary storage, and therefore a sort process of rearranging such a long link in time-stamp order takes a considerable time. In particular, only about several minutes at the longest are allowed from power-on again until an input/output process can be performed after an initialization process. During this initialization process, it is impossible to end a link sort process. To get around this problem, for the reconfigured link, a sort process of rearranging in time-stamp order is not performed, and the link remains in address order. For a block information table of a data block written with a write command from the host after power-on again, arrangement in time-stamp order on the link is ensured. Thus, a portion of the link including block information tables generated before power-on again is not arranged in time-stamp order. For example, when a table at the earliest (LRU side) of the hit link is expelled so as to allocate a space area in the primary storage, a data block with a new time stamp is expelled, and a data block with an old time stamp remains. Thus, an input/output request to the primary storage does not hit and therefore the frequency of access to the secondary storage is increased, thereby disadvantageously reducing input/output performance of the system.